﻿using BJ.AuthEntity.ViewModels;
using Syspetro.Core.AppDeal;
using Syspetro.Core.SysInterface;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BJ.AuthDomain.IService
{
    public interface IAdminUserAuthService: ITransientService
    {
        /// <summary>
        /// 获取管理员ID
        /// </summary>
        /// <param name="loginUser"></param>
        /// <returns></returns>
        Task<SpActionResult<Guid>> LoginUser(VM_AdminLogin loginUser);
        /// <summary>
        /// 用户认证登录(进行Google验证)
        /// </summary>
        /// <param name="loginUser"></param>
        /// <returns></returns>
        Task<SpActionResult<VM_Token>> AuthLoginUser(VM_AdminAuthLogin authLogin);
        /// <summary>
        /// 获取用户详情
        /// </summary>
        /// <returns></returns>
        Task<SpActionResult<VM_User>> GetUserInfo();
        /// <summary>
        /// 修改密码
        /// </summary>
        /// <param name="userRegister"></param>
        /// <returns></returns>
        Task<SpActionResult<bool>> ChangePswd(VM_ChangePswd changePswd);
        /// <summary>
        /// 刷新Token
        /// </summary>
        /// <param name="tokenId"></param>
        /// <returns></returns>
        Task<string> RefreshToken(Guid tokenId);
        /// <summary>
        /// 退出登录
        /// </summary>
        /// <param name="tokenId"></param>
        /// <returns></returns>
        Task LogOut(Guid tokenId);
        /// <summary>
        /// 获取菜单列表
        /// </summary>
        /// <returns></returns>
        Task<List<VM_Menu>> GetAuthMenus();
    }
}
